import 'dotenv/config';
import {
    IOSAgent,
    IOSDevice,
    agentFromWebDriverAgent,
} from '@midscene/ios';

const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
Promise.resolve(
    (async () => {
        // 方法一：直接创建设备和代理
        const page = new IOSDevice({
            wdaPort: 8100,
            wdaHost: 'localhost',
        });

        // 👀 初始化 Midscene agent
        const agent = new IOSAgent(page, {
            aiActionContext:
                '如果出现位置、权限、用户协议等弹窗，点击同意。如果出现登录页面，关闭它。',
        });
        await page.connect();

        // 方法二：或者使用便捷函数（推荐）
        // const agent = await agentFromWebDriverAgent({
        //   wdaPort: 8100,
        //   wdaHost: 'localhost',
        //   aiActionContext: '如果出现位置、权限、用户协议等弹窗，点击同意。如果出现登录页面，关闭它。',
        // });

        // 👀 打开 ebay.com 网页
        await page.launch('https://ebay.com');
        await sleep(3000);

        // 👀 输入关键词，执行搜索
        await agent.aiAction('在搜索框输入 "Headphones" ，敲回车');

        // 👀 等待加载完成
        await agent.aiWaitFor('页面中至少有一个耳机商品');
        // 或者你也可以使用一个普通的 sleep:
        // await sleep(5000);

        // 👀 理解页面内容，提取数据
        const items = await agent.aiQuery(
            '{itemTitle: string, price: Number}[], 找到列表里的商品标题和价格',
        );
        console.log('耳机商品信息', items);

        // 👀 用 AI 断言
        await agent.aiAssert('界面中有多个耳机产品');

        await page.destroy();
    })(),
);